package Composite;

import fichiers.*;
import Composite.Dossier;
import Composite.Element;
import Visitables.Visiteur;
import Visitables.Visiteur_ConstructionDuDisqueDur;
import espace_physique.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.ImageIcon;


public class RacineDossier extends Dossier{
    
    private static RacineDossier racine;
    private GestionnaireDeDossier gestionnaire;
    
    private RacineDossier() {
        super(null,null,"Poste de travail");
        gestionnaire=new GestionnaireDeDossier();
        
    }
    
        public ImageIcon getRepresentation() {

        return this.pdt;
    }

    
    public void accept(Visiteur v) {
        
        v.visiteRacineDossier(this);
        ArrayList temp = new ArrayList(this.getDossiers());
        Iterator<Element> it = temp.iterator();
        while (it.hasNext()){
            
            Element suiv = it.next();
            suiv.accept(v);
        }
    }
    

    
    public static RacineDossier getRacine(){
        
        if(racine==null){
            
            racine=new RacineDossier();
        }
        
        return racine;
    }
    
    public static void setRacine(RacineDossier r){
        
        racine=r;
    }
    
    public GestionnaireDeDossier getGestionnaire(){
        
        return gestionnaire;
    }
    
    
      public boolean contientFichier(File f){
        
        ArrayList temp=new ArrayList(this.getDossiers());
        Iterator<Element> it=temp.iterator();
        while(it.hasNext()){
            
            Element suiv=it.next();
            if(suiv.getFichierCourant().toString().equals(f.toString())){
                
                return true;
            }
        }
        return false;
    }
    
    
}

